const Koa = require('koa');
const Router = require('koa-router');   // koa2的路由插件
const mongoose = require('mongoose');
const bodyparser = require('koa-bodyparser');   // 为了方便的接收post的值
const cors = require('koa2-cors');    // 为了解决axios的跨域问题

const { connect, initSchemas } = require('./database/init.js');
const user = require('./appApi/user.js');
const goods = require('./appApi/goods.js');

const app = new Koa();
const router = new Router();

app.use(bodyparser())
app.use(cors())

// 装载所有子路由
router.use('/user', user.routes(), user.allowedMethods());
router.use('/goods', goods.routes(), goods.allowedMethods());

// 加载路由中间件
app.use(router.routes()).use(router.allowedMethods());


// 立即执行函数
;(async () => {
  await connect();
  initSchemas();    // 引入所有的Schema模型
  mongoose.set('useCreateIndex', true);   // 为了解决node警告
  // const User = mongoose.model('user');    // 使用已经发布Schema模型的User表
  // let oneUser = new User({userName:'jspang04',password:'123456'});  // 新建一条数据
  // oneUser.save().then(() => {   // save()，向user表中插入数据
  //   console.log('插入成功')
  // });
  // let users = await User.findOne({}).exec();    // 老的mongoose需要加exec()才能成功查找
  // console.log(users);
})();


app.listen(3000, () => {
  console.log('[Service] is running at port 3000');
});
